home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 2000 October: Mac OS SDK / Dev.CD Oct 00 SDK1.toast / Development Kits / Cross Platform / QuickTime 4.1.2 Windows SDK / CIncludes / SpeechSynthesis.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-04-12  |  16.5 KB  |  481 lines  |  [TEXT/R*ch]

  1. /*
  2.      File:        SpeechSynthesis.h
  3.  
  4.      Contains:    Speech Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    QuickTime 4.1
  8.  
  9.      Copyright:    (c) 1989-1999 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __SPEECHSYNTHESIS__
  18. #define __SPEECHSYNTHESIS__
  19.  
  20. #ifndef __MACTYPES__
  21.     #include <MacTypes.h>
  22. #endif
  23.  
  24. #ifndef __MIXEDMODE__
  25.     #include <MixedMode.h>
  26. #endif
  27.  
  28. #ifndef __FILES__
  29.     #include <Files.h>
  30. #endif
  31.  
  32.  
  33.  
  34.  
  35. #if PRAGMA_ONCE
  36. #pragma once
  37. #endif
  38.  
  39. #ifdef __cplusplus
  40. extern "C" {
  41. #endif
  42.  
  43. #if PRAGMA_IMPORT
  44. #pragma import on
  45. #endif
  46.  
  47. #if PRAGMA_STRUCT_ALIGN
  48.     #pragma options align=mac68k
  49. #elif PRAGMA_STRUCT_PACKPUSH
  50.     #pragma pack(push, 2)
  51. #elif PRAGMA_STRUCT_PACK
  52.     #pragma pack(2)
  53. #endif
  54.  
  55. enum {
  56.     kTextToSpeechSynthType        = FOUR_CHAR_CODE('ttsc'),
  57.     kTextToSpeechVoiceType        = FOUR_CHAR_CODE('ttvd'),
  58.     kTextToSpeechVoiceFileType    = FOUR_CHAR_CODE('ttvf'),
  59.     kTextToSpeechVoiceBundleType = FOUR_CHAR_CODE('ttvb')
  60. };
  61.  
  62. enum {
  63.     kNoEndingProsody            = 1,
  64.     kNoSpeechInterrupt            = 2,
  65.     kPreflightThenPause            = 4
  66. };
  67.  
  68. enum {
  69.     kImmediate                    = 0,
  70.     kEndOfWord                    = 1,
  71.     kEndOfSentence                = 2
  72. };
  73.  
  74.  
  75. /*------------------------------------------*/
  76. /* GetSpeechInfo & SetSpeechInfo selectors    */
  77. /*------------------------------------------*/
  78. enum {
  79.     soStatus                    = FOUR_CHAR_CODE('stat'),
  80.     soErrors                    = FOUR_CHAR_CODE('erro'),
  81.     soInputMode                    = FOUR_CHAR_CODE('inpt'),
  82.     soCharacterMode                = FOUR_CHAR_CODE('char'),
  83.     soNumberMode                = FOUR_CHAR_CODE('nmbr'),
  84.     soRate                        = FOUR_CHAR_CODE('rate'),
  85.     soPitchBase                    = FOUR_CHAR_CODE('pbas'),
  86.     soPitchMod                    = FOUR_CHAR_CODE('pmod'),
  87.     soVolume                    = FOUR_CHAR_CODE('volm'),
  88.     soSynthType                    = FOUR_CHAR_CODE('vers'),
  89.     soRecentSync                = FOUR_CHAR_CODE('sync'),
  90.     soPhonemeSymbols            = FOUR_CHAR_CODE('phsy'),
  91.     soCurrentVoice                = FOUR_CHAR_CODE('cvox'),
  92.     soCommandDelimiter            = FOUR_CHAR_CODE('dlim'),
  93.     soReset                        = FOUR_CHAR_CODE('rset'),
  94.     soCurrentA5                    = FOUR_CHAR_CODE('myA5'),
  95.     soRefCon                    = FOUR_CHAR_CODE('refc'),
  96.     soTextDoneCallBack            = FOUR_CHAR_CODE('tdcb'),        /* use with SpeechTextDoneProcPtr*/
  97.     soSpeechDoneCallBack        = FOUR_CHAR_CODE('sdcb'),        /* use with SpeechDoneProcPtr*/
  98.     soSyncCallBack                = FOUR_CHAR_CODE('sycb'),        /* use with SpeechSyncProcPtr*/
  99.     soErrorCallBack                = FOUR_CHAR_CODE('ercb'),        /* use with SpeechErrorProcPtr*/
  100.     soPhonemeCallBack            = FOUR_CHAR_CODE('phcb'),        /* use with SpeechPhonemeProcPtr*/
  101.     soWordCallBack                = FOUR_CHAR_CODE('wdcb'),
  102.     soSynthExtension            = FOUR_CHAR_CODE('xtnd'),
  103.     soSoundOutput                = FOUR_CHAR_CODE('sndo')
  104. };
  105.  
  106.  
  107. /*------------------------------------------*/
  108. /* Speaking Mode Constants                     */
  109. /*------------------------------------------*/
  110. enum {
  111.     modeText                    = FOUR_CHAR_CODE('TEXT'),        /* input mode constants                     */
  112.     modePhonemes                = FOUR_CHAR_CODE('PHON'),
  113.     modeNormal                    = FOUR_CHAR_CODE('NORM'),        /* character mode and number mode constants */
  114.     modeLiteral                    = FOUR_CHAR_CODE('LTRL')
  115. };
  116.  
  117.  
  118. enum {
  119.     soVoiceDescription            = FOUR_CHAR_CODE('info'),
  120.     soVoiceFile                    = FOUR_CHAR_CODE('fref')
  121. };
  122.  
  123.  
  124. typedef struct OpaqueSpeechChannel*     SpeechChannel;
  125.  
  126.  
  127. struct VoiceSpec {
  128.     OSType                             creator;
  129.     OSType                             id;
  130. };
  131. typedef struct VoiceSpec                VoiceSpec;
  132. typedef VoiceSpec *                        VoiceSpecPtr;
  133.  
  134. enum {
  135.     kNeuter                        = 0,
  136.     kMale                        = 1,
  137.     kFemale                        = 2
  138. };
  139.  
  140.  
  141.  
  142.  
  143.  
  144. struct VoiceDescription {
  145.     long                             length;
  146.     VoiceSpec                         voice;
  147.     long                             version;
  148.     Str63                             name;
  149.     Str255                             comment;
  150.     short                             gender;
  151.     short                             age;
  152.     short                             script;
  153.     short                             language;
  154.     short                             region;
  155.     long                             reserved[4];
  156. };
  157. typedef struct VoiceDescription            VoiceDescription;
  158.  
  159.  
  160.  
  161. struct VoiceFileInfo {
  162.     FSSpec                             fileSpec;
  163.     short                             resID;
  164. };
  165. typedef struct VoiceFileInfo            VoiceFileInfo;
  166.  
  167. struct SpeechStatusInfo {
  168.     Boolean                         outputBusy;
  169.     Boolean                         outputPaused;
  170.     long                             inputBytesLeft;
  171.     short                             phonemeCode;
  172. };
  173. typedef struct SpeechStatusInfo            SpeechStatusInfo;
  174.  
  175.  
  176.  
  177. struct SpeechErrorInfo {
  178.     short                             count;
  179.     OSErr                             oldest;
  180.     long                             oldPos;
  181.     OSErr                             newest;
  182.     long                             newPos;
  183. };
  184. typedef struct SpeechErrorInfo            SpeechErrorInfo;
  185.  
  186.  
  187.  
  188. struct SpeechVersionInfo {
  189.     OSType                             synthType;
  190.     OSType                             synthSubType;
  191.     OSType                             synthManufacturer;
  192.     long                             synthFlags;
  193.     NumVersion                         synthVersion;
  194. };
  195. typedef struct SpeechVersionInfo        SpeechVersionInfo;
  196.  
  197.  
  198.  
  199. struct PhonemeInfo {
  200.     short                             opcode;
  201.     Str15                             phStr;
  202.     Str31                             exampleStr;
  203.     short                             hiliteStart;
  204.     short                             hiliteEnd;
  205. };
  206. typedef struct PhonemeInfo                PhonemeInfo;
  207.  
  208.  
  209. struct PhonemeDescriptor {
  210.     short                             phonemeCount;
  211.     PhonemeInfo                     thePhonemes[1];
  212. };
  213. typedef struct PhonemeDescriptor        PhonemeDescriptor;
  214.  
  215. struct SpeechXtndData {
  216.     OSType                             synthCreator;
  217.     Byte                             synthData[2];
  218. };
  219. typedef struct SpeechXtndData            SpeechXtndData;
  220.  
  221.  
  222. struct DelimiterInfo {
  223.     Byte                             startDelimiter[2];
  224.     Byte                             endDelimiter[2];
  225. };
  226. typedef struct DelimiterInfo            DelimiterInfo;
  227.  
  228. typedef CALLBACK_API( void , SpeechTextDoneProcPtr )(SpeechChannel chan, long refCon, const void **nextBuf, unsigned long *byteLen, long *controlFlags);
  229. typedef CALLBACK_API( void , SpeechDoneProcPtr )(SpeechChannel chan, long refCon);
  230. typedef CALLBACK_API( void , SpeechSyncProcPtr )(SpeechChannel chan, long refCon, OSType syncMessage);
  231. typedef CALLBACK_API( void , SpeechErrorProcPtr )(SpeechChannel chan, long refCon, OSErr theError, long bytePos);
  232. typedef CALLBACK_API( void , SpeechPhonemeProcPtr )(SpeechChannel chan, long refCon, short phonemeOpcode);
  233. typedef CALLBACK_API( void , SpeechWordProcPtr )(SpeechChannel chan, long refCon, unsigned long wordPos, unsigned short wordLen);
  234. typedef STACK_UPP_TYPE(SpeechTextDoneProcPtr)                     SpeechTextDoneUPP;
  235. typedef STACK_UPP_TYPE(SpeechDoneProcPtr)                         SpeechDoneUPP;
  236. typedef STACK_UPP_TYPE(SpeechSyncProcPtr)                         SpeechSyncUPP;
  237. typedef STACK_UPP_TYPE(SpeechErrorProcPtr)                         SpeechErrorUPP;
  238. typedef STACK_UPP_TYPE(SpeechPhonemeProcPtr)                     SpeechPhonemeUPP;
  239. typedef STACK_UPP_TYPE(SpeechWordProcPtr)                         SpeechWordUPP;
  240. #if OPAQUE_UPP_TYPES
  241.     EXTERN_API(SpeechTextDoneUPP)
  242.     NewSpeechTextDoneUPP           (SpeechTextDoneProcPtr    userRoutine);
  243.  
  244.     EXTERN_API(SpeechDoneUPP)
  245.     NewSpeechDoneUPP               (SpeechDoneProcPtr        userRoutine);
  246.  
  247.     EXTERN_API(SpeechSyncUPP)
  248.     NewSpeechSyncUPP               (SpeechSyncProcPtr        userRoutine);
  249.  
  250.     EXTERN_API(SpeechErrorUPP)
  251.     NewSpeechErrorUPP               (SpeechErrorProcPtr        userRoutine);
  252.  
  253.     EXTERN_API(SpeechPhonemeUPP)
  254.     NewSpeechPhonemeUPP               (SpeechPhonemeProcPtr    userRoutine);
  255.  
  256.     EXTERN_API(SpeechWordUPP)
  257.     NewSpeechWordUPP               (SpeechWordProcPtr        userRoutine);
  258.  
  259.     EXTERN_API(void)
  260.     DisposeSpeechTextDoneUPP       (SpeechTextDoneUPP        userUPP);
  261.  
  262.     EXTERN_API(void)
  263.     DisposeSpeechDoneUPP           (SpeechDoneUPP            userUPP);
  264.  
  265.     EXTERN_API(void)
  266.     DisposeSpeechSyncUPP           (SpeechSyncUPP            userUPP);
  267.  
  268.     EXTERN_API(void)
  269.     DisposeSpeechErrorUPP           (SpeechErrorUPP            userUPP);
  270.  
  271.     EXTERN_API(void)
  272.     DisposeSpeechPhonemeUPP           (SpeechPhonemeUPP        userUPP);
  273.  
  274.     EXTERN_API(void)
  275.     DisposeSpeechWordUPP           (SpeechWordUPP            userUPP);
  276.  
  277.     EXTERN_API(void)
  278.     InvokeSpeechTextDoneUPP           (SpeechChannel            chan,
  279.                                     long                    refCon,
  280.                                     const void **            nextBuf,
  281.                                     unsigned long *            byteLen,
  282.                                     long *                    controlFlags,
  283.                                     SpeechTextDoneUPP        userUPP);
  284.  
  285.     EXTERN_API(void)
  286.     InvokeSpeechDoneUPP               (SpeechChannel            chan,
  287.                                     long                    refCon,
  288.                                     SpeechDoneUPP            userUPP);
  289.  
  290.     EXTERN_API(void)
  291.     InvokeSpeechSyncUPP               (SpeechChannel            chan,
  292.                                     long                    refCon,
  293.                                     OSType                    syncMessage,
  294.                                     SpeechSyncUPP            userUPP);
  295.  
  296.     EXTERN_API(void)
  297.     InvokeSpeechErrorUPP           (SpeechChannel            chan,
  298.                                     long                    refCon,
  299.                                     OSErr                    theError,
  300.                                     long                    bytePos,
  301.                                     SpeechErrorUPP            userUPP);
  302.  
  303.     EXTERN_API(void)
  304.     InvokeSpeechPhonemeUPP           (SpeechChannel            chan,
  305.                                     long                    refCon,
  306.                                     short                    phonemeOpcode,
  307.                                     SpeechPhonemeUPP        userUPP);
  308.  
  309.     EXTERN_API(void)
  310.     InvokeSpeechWordUPP               (SpeechChannel            chan,
  311.                                     long                    refCon,
  312.                                     unsigned long            wordPos,
  313.                                     unsigned short            wordLen,
  314.                                     SpeechWordUPP            userUPP);
  315.  
  316. #else
  317.     enum { uppSpeechTextDoneProcInfo = 0x0000FFC0 };                 /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  318.     enum { uppSpeechDoneProcInfo = 0x000003C0 };                     /* pascal no_return_value Func(4_bytes, 4_bytes) */
  319.     enum { uppSpeechSyncProcInfo = 0x00000FC0 };                     /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes) */
  320.     enum { uppSpeechErrorProcInfo = 0x00003BC0 };                     /* pascal no_return_value Func(4_bytes, 4_bytes, 2_bytes, 4_bytes) */
  321.     enum { uppSpeechPhonemeProcInfo = 0x00000BC0 };                 /* pascal no_return_value Func(4_bytes, 4_bytes, 2_bytes) */
  322.     enum { uppSpeechWordProcInfo = 0x00002FC0 };                     /* pascal no_return_value Func(4_bytes, 4_bytes, 4_bytes, 2_bytes) */
  323.     #define NewSpeechTextDoneUPP(userRoutine)                         (SpeechTextDoneUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechTextDoneProcInfo, GetCurrentArchitecture())
  324.     #define NewSpeechDoneUPP(userRoutine)                             (SpeechDoneUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechDoneProcInfo, GetCurrentArchitecture())
  325.     #define NewSpeechSyncUPP(userRoutine)                             (SpeechSyncUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechSyncProcInfo, GetCurrentArchitecture())
  326.     #define NewSpeechErrorUPP(userRoutine)                             (SpeechErrorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechErrorProcInfo, GetCurrentArchitecture())
  327.     #define NewSpeechPhonemeUPP(userRoutine)                         (SpeechPhonemeUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechPhonemeProcInfo, GetCurrentArchitecture())
  328.     #define NewSpeechWordUPP(userRoutine)                             (SpeechWordUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSpeechWordProcInfo, GetCurrentArchitecture())
  329.     #define DisposeSpeechTextDoneUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  330.     #define DisposeSpeechDoneUPP(userUPP)                             DisposeRoutineDescriptor(userUPP)
  331.     #define DisposeSpeechSyncUPP(userUPP)                             DisposeRoutineDescriptor(userUPP)
  332.     #define DisposeSpeechErrorUPP(userUPP)                             DisposeRoutineDescriptor(userUPP)
  333.     #define DisposeSpeechPhonemeUPP(userUPP)                         DisposeRoutineDescriptor(userUPP)
  334.     #define DisposeSpeechWordUPP(userUPP)                             DisposeRoutineDescriptor(userUPP)
  335.     #define InvokeSpeechTextDoneUPP(chan, refCon, nextBuf, byteLen, controlFlags, userUPP)  CALL_FIVE_PARAMETER_UPP((userUPP), uppSpeechTextDoneProcInfo, (chan), (refCon), (nextBuf), (byteLen), (controlFlags))
  336.     #define InvokeSpeechDoneUPP(chan, refCon, userUPP)                 CALL_TWO_PARAMETER_UPP((userUPP), uppSpeechDoneProcInfo, (chan), (refCon))
  337.     #define InvokeSpeechSyncUPP(chan, refCon, syncMessage, userUPP)  CALL_THREE_PARAMETER_UPP((userUPP), uppSpeechSyncProcInfo, (chan), (refCon), (syncMessage))
  338.     #define InvokeSpeechErrorUPP(chan, refCon, theError, bytePos, userUPP)  CALL_FOUR_PARAMETER_UPP((userUPP), uppSpeechErrorProcInfo, (chan), (refCon), (theError), (bytePos))
  339.     #define InvokeSpeechPhonemeUPP(chan, refCon, phonemeOpcode, userUPP)  CALL_THREE_PARAMETER_UPP((userUPP), uppSpeechPhonemeProcInfo, (chan), (refCon), (phonemeOpcode))
  340.     #define InvokeSpeechWordUPP(chan, refCon, wordPos, wordLen, userUPP)  CALL_FOUR_PARAMETER_UPP((userUPP), uppSpeechWordProcInfo, (chan), (refCon), (wordPos), (wordLen))
  341. #endif
  342. /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  343. #define NewSpeechTextDoneProc(userRoutine)                         NewSpeechTextDoneUPP(userRoutine)
  344. #define NewSpeechDoneProc(userRoutine)                             NewSpeechDoneUPP(userRoutine)
  345. #define NewSpeechSyncProc(userRoutine)                             NewSpeechSyncUPP(userRoutine)
  346. #define NewSpeechErrorProc(userRoutine)                         NewSpeechErrorUPP(userRoutine)
  347. #define NewSpeechPhonemeProc(userRoutine)                         NewSpeechPhonemeUPP(userRoutine)
  348. #define NewSpeechWordProc(userRoutine)                             NewSpeechWordUPP(userRoutine)
  349. #define CallSpeechTextDoneProc(userRoutine, chan, refCon, nextBuf, byteLen, controlFlags) InvokeSpeechTextDoneUPP(chan, refCon, nextBuf, byteLen, controlFlags, userRoutine)
  350. #define CallSpeechDoneProc(userRoutine, chan, refCon)            InvokeSpeechDoneUPP(chan, refCon, userRoutine)
  351. #define CallSpeechSyncProc(userRoutine, chan, refCon, syncMessage) InvokeSpeechSyncUPP(chan, refCon, syncMessage, userRoutine)
  352. #define CallSpeechErrorProc(userRoutine, chan, refCon, theError, bytePos) InvokeSpeechErrorUPP(chan, refCon, theError, bytePos, userRoutine)
  353. #define CallSpeechPhonemeProc(userRoutine, chan, refCon, phonemeOpcode) InvokeSpeechPhonemeUPP(chan, refCon, phonemeOpcode, userRoutine)
  354. #define CallSpeechWordProc(userRoutine, chan, refCon, wordPos, wordLen) InvokeSpeechWordUPP(chan, refCon, wordPos, wordLen, userRoutine)
  355. EXTERN_API( NumVersion )
  356. SpeechManagerVersion            (void)                                                        FOURWORDINLINE(0x203C, 0x0000, 0x000C, 0xA800);
  357.  
  358. EXTERN_API( OSErr )
  359. MakeVoiceSpec                    (OSType                 creator,
  360.                                  OSType                 id,
  361.                                  VoiceSpec *            voice)                                FOURWORDINLINE(0x203C, 0x0604, 0x000C, 0xA800);
  362.  
  363. EXTERN_API( OSErr )
  364. CountVoices                        (short *                numVoices)                            FOURWORDINLINE(0x203C, 0x0108, 0x000C, 0xA800);
  365.  
  366. EXTERN_API( OSErr )
  367. GetIndVoice                        (short                     index,
  368.                                  VoiceSpec *            voice)                                FOURWORDINLINE(0x203C, 0x030C, 0x000C, 0xA800);
  369.  
  370. EXTERN_API( OSErr )
  371. GetVoiceDescription                (const VoiceSpec *        voice,
  372.                                  VoiceDescription *        info,
  373.                                  long                     infoLength)                            FOURWORDINLINE(0x203C, 0x0610, 0x000C, 0xA800);
  374.  
  375. EXTERN_API( OSErr )
  376. GetVoiceInfo                    (const VoiceSpec *        voice,
  377.                                  OSType                 selector,
  378.                                  void *                    voiceInfo)                            FOURWORDINLINE(0x203C, 0x0614, 0x000C, 0xA800);
  379.  
  380. EXTERN_API( OSErr )
  381. NewSpeechChannel                (VoiceSpec *            voice, /* can be NULL */
  382.                                  SpeechChannel *        chan)                                FOURWORDINLINE(0x203C, 0x0418, 0x000C, 0xA800);
  383.  
  384. EXTERN_API( OSErr )
  385. DisposeSpeechChannel            (SpeechChannel             chan)                                FOURWORDINLINE(0x203C, 0x021C, 0x000C, 0xA800);
  386.  
  387. EXTERN_API( OSErr )
  388. SpeakString                        (ConstStr255Param         textToBeSpoken)                        FOURWORDINLINE(0x203C, 0x0220, 0x000C, 0xA800);
  389.  
  390. EXTERN_API( OSErr )
  391. SpeakText                        (SpeechChannel             chan,
  392.                                  const void *            textBuf,
  393.                                  unsigned long             textBytes)                            FOURWORDINLINE(0x203C, 0x0624, 0x000C, 0xA800);
  394.  
  395. EXTERN_API( OSErr )
  396. SpeakBuffer                        (SpeechChannel             chan,
  397.                                  const void *            textBuf,
  398.                                  unsigned long             textBytes,
  399.                                  long                     controlFlags)                        FOURWORDINLINE(0x203C, 0x0828, 0x000C, 0xA800);
  400.  
  401. EXTERN_API( OSErr )
  402. StopSpeech                        (SpeechChannel             chan)                                FOURWORDINLINE(0x203C, 0x022C, 0x000C, 0xA800);
  403.  
  404. EXTERN_API( OSErr )
  405. StopSpeechAt                    (SpeechChannel             chan,
  406.                                  long                     whereToStop)                        FOURWORDINLINE(0x203C, 0x0430, 0x000C, 0xA800);
  407.  
  408. EXTERN_API( OSErr )
  409. PauseSpeechAt                    (SpeechChannel             chan,
  410.                                  long                     whereToPause)                        FOURWORDINLINE(0x203C, 0x0434, 0x000C, 0xA800);
  411.  
  412. EXTERN_API( OSErr )
  413. ContinueSpeech                    (SpeechChannel             chan)                                FOURWORDINLINE(0x203C, 0x0238, 0x000C, 0xA800);
  414.  
  415. EXTERN_API( short )
  416. SpeechBusy                        (void)                                                        FOURWORDINLINE(0x203C, 0x003C, 0x000C, 0xA800);
  417.  
  418. EXTERN_API( short )
  419. SpeechBusySystemWide            (void)                                                        FOURWORDINLINE(0x203C, 0x0040, 0x000C, 0xA800);
  420.  
  421. EXTERN_API( OSErr )
  422. SetSpeechRate                    (SpeechChannel             chan,
  423.                                  Fixed                     rate)                                FOURWORDINLINE(0x203C, 0x0444, 0x000C, 0xA800);
  424.  
  425. EXTERN_API( OSErr )
  426. GetSpeechRate                    (SpeechChannel             chan,
  427.                                  Fixed *                rate)                                FOURWORDINLINE(0x203C, 0x0448, 0x000C, 0xA800);
  428.  
  429. EXTERN_API( OSErr )
  430. SetSpeechPitch                    (SpeechChannel             chan,
  431.                                  Fixed                     pitch)                                FOURWORDINLINE(0x203C, 0x044C, 0x000C, 0xA800);
  432.  
  433. EXTERN_API( OSErr )
  434. GetSpeechPitch                    (SpeechChannel             chan,
  435.                                  Fixed *                pitch)                                FOURWORDINLINE(0x203C, 0x0450, 0x000C, 0xA800);
  436.  
  437. EXTERN_API( OSErr )
  438. SetSpeechInfo                    (SpeechChannel             chan,
  439.                                  OSType                 selector,
  440.                                  const void *            speechInfo)                            FOURWORDINLINE(0x203C, 0x0654, 0x000C, 0xA800);
  441.  
  442. EXTERN_API( OSErr )
  443. GetSpeechInfo                    (SpeechChannel             chan,
  444.                                  OSType                 selector,
  445.                                  void *                    speechInfo)                            FOURWORDINLINE(0x203C, 0x0658, 0x000C, 0xA800);
  446.  
  447. EXTERN_API( OSErr )
  448. TextToPhonemes                    (SpeechChannel             chan,
  449.                                  const void *            textBuf,
  450.                                  unsigned long             textBytes,
  451.                                  Handle                 phonemeBuf,
  452.                                  long *                    phonemeBytes)                        FOURWORDINLINE(0x203C, 0x0A5C, 0x000C, 0xA800);
  453.  
  454. EXTERN_API( OSErr )
  455. UseDictionary                    (SpeechChannel             chan,
  456.                                  Handle                 dictionary)                            FOURWORDINLINE(0x203C, 0x0460, 0x000C, 0xA800);
  457.  
  458.  
  459.  
  460.  
  461. #if PRAGMA_STRUCT_ALIGN
  462.     #pragma options align=reset
  463. #elif PRAGMA_STRUCT_PACKPUSH
  464.     #pragma pack(pop)
  465. #elif PRAGMA_STRUCT_PACK
  466.     #pragma pack()
  467. #endif
  468.  
  469. #ifdef PRAGMA_IMPORT_OFF
  470. #pragma import off
  471. #elif PRAGMA_IMPORT
  472. #pragma import reset
  473. #endif
  474.  
  475. #ifdef __cplusplus
  476. }
  477. #endif
  478.  
  479. #endif /* __SPEECHSYNTHESIS__ */
  480.  
  481.